Next Js - Mongoose ile MongoDb Bağlantısı Kurma

Next Js - Mongoose ile MongoDb Bağlantısı Kurma
1 Ekim 2024
#Next.Js#Yazılım#MongoDb#Mongoose#React

Bu yazımızda verilerimizi MongoDb veritabanında tutarken, bu veriler üzerinde işlem yapma veya yeni veriler eklemek için nasıl bağlantı kuracağımızı ve nasıl bu bağlantıyı kullanabileceğimizi anlatacağız. 

Çok uzun bir konu değil, hızlı bir şekilde yapabilirsiniz. Dilerseniz hızlı bir şekilde uygulamaya geçelim.

Tanımladığınız linkde kullanıcı adınızı, şifrenizi ve collection ismini yazmayı unutmayın. Yukarıda belirttiğim yerler değişecek.

1. Adım - .Evn Dosyamızdan Veritabanı Yolumuzu Tanımlama

İlk olarak .env dosyamıza MongoDb Atlas üzerinden aldığımız veritabanı bağlantı url'mizi tanımlıyoruz.

NEXT_PUBLIC_MONGO_URI = mongodb+srv://"kullanıcı adı":"şifre"@financeapp.hyxj3.mongodb.net/
"collection ismi"?retryWrites=true&w=majority&appName="collection ismi"

Tanımladığınız linkde kullanıcı adınızı, şifrenizi ve collection ismini yazmayı unutmayın. Yukarıda belirttiğim yerler değişecek.

Sonrasında mongoose eklentisini indiriniz.

npm install moongoose

2. Adım - Bağlantı Dosyamızı Oluşturma

Bu adımda bağlantı dosyamızı oluşturacağız. Bunun içinde uygulama dosyamda dbConnect.ts (adı size kalmış) adlı bir dosya oluşturuyorum. .Env dosyamda tanımladığım bağlantı adresini burada çağırıyorum.

import mongoose from "mongoose";

declare global {
  var mongoose: any;
}

let cached = global.mongoose;

if (!cached) {
  cached = global.mongoose = { conn:null, promise:null };
}

async function dbConnect() {
  if (cached.conn) {
    return cached.conn;
  }
  if (!cached.promise) {
    constopts = {
      bufferCommands: false,
    };
    cached.promise = mongoose
      .connect(process.env.NEXT_PUBLIC_MONGO_URI as string, opts)
      .then((mongoose) => {
        return mongoose;
      });
  }
  try {
    cached.conn = await cached.promise;
  } catch (e) {
    cached.promise = null;
    throw e;
  }

  return cached.conn;
}

export default dbConnect;

Bu dosyada oluşturduğumuz dbConnect fonksiyonunu veritabanı işlemi yapacağım, yerlerde öncesinde çağırıyorum. Örneğin aşağıdaki örnekte veritabanından veri çekme işlemi yapıyorum. Yapmadan hemen önce bağlantıyı kuruyorum.

export const fetchParameters = async ():Promise<Parameter[]> => {
  try {
    await dbConnect();
    const allItems = await ParameterModel.find({}).lean();
    return allitems
  } catch (error) {
    console.error(`Error fetching from model`, error);
    return [];
  }
};

Evet hepsi bu kadar. Bağlantıyı sağlamış oldum, sonrasında da veritabanı işlemini gerçekleştirdim.

Bu yazımızda burada sona eriyor. Konu ile ilgili soru, sorun, öneri veya ilaveniz olursa aşağı yorumlara yazabilirsiniz. İyi Çalışmalar.


Benzer Yazılar

Bekleyiniz ...

Bekleyiniz ...

footer_logo

Bütün Hakları Saklıdır @2024

mehmetaltann@gmail.com